import { request } from '@umijs/max';

/**
 * 获取合同变更列表
 * @param {Object} params - 查询参数
 * @returns {Promise} 返回合同变更列表
 */
export async function getContractChanges(params) {
  return request('/api/contract-changes', {
    method: 'GET',
    params,
  });
}

/**
 * 获取可变更的合同列表（正常状态的合同）
 * @param {Object} params - 查询参数
 * @returns {Promise} 返回合同列表
 */
export async function getAvailableContracts(params) {
  return request('/api/customer-contracts', {
    method: 'GET',
    params: {
      ...params,
      status: '正常', // 只获取正常状态的合同
    },
  });
}

/**
 * 创建合同变更记录
 * @param {Object} data - 合同变更数据
 * @returns {Promise} 返回创建结果
 */
export async function createContractChange(data) {
  return request('/api/contract-changes', {
    method: 'POST',
    data,
  });
}

/**
 * 更新合同变更记录
 * @param {number} id - 合同变更ID
 * @param {Object} data - 更新数据
 * @returns {Promise} 返回更新结果
 */
export async function updateContractChange(id, data) {
  return request(`/api/contract-changes/${id}`, {
    method: 'PUT',
    data,
  });
}

/**
 * 删除合同变更记录
 * @param {number} id - 合同变更ID
 * @returns {Promise} 返回删除结果
 */
export async function deleteContractChange(id) {
  return request(`/api/contract-changes/${id}`, {
    method: 'DELETE',
  });
}

/**
 * 审批通过合同变更
 * @param {number} id - 合同变更ID
 * @returns {Promise} 返回审批结果
 */
export async function approveContractChange(id) {
  return request(`/api/contract-changes/${id}/approve`, {
    method: 'POST',
  });
}

/**
 * 拒绝合同变更
 * @param {number} id - 合同变更ID
 * @param {string} reason - 拒绝原因
 * @returns {Promise} 返回拒绝结果
 */
export async function rejectContractChange(id, reason) {
  return request(`/api/contract-changes/${id}/reject`, {
    method: 'POST',
    data: { reason },
  });
} 